home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-02
/
tpbind.zip
/
LDB1.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1991-05-21
|
2KB
|
78 lines
program ldb1;
uses bind;
type strPtr = ^string;
procedure display(D, M, A : pointer); far;
type strPtr = ^string;
intPtr = ^integer;
var i : integer;
begin
i := length(strPtr(D)^);
inc(intPtr(A)^,i);
writeln('length: ',i,
' accumulated: ',intPtr(A)^,
' string: ',strPtr(D)^);
end;
function strcmp(D1, D2 : pointer) : integer; far;
begin
if (strPtr(D1)^ < strPtr(D2)^) then
strcmp := -1
else if (strPtr(D1)^ > strPtr(D2)^) then
strcmp := 1
else
strcmp := 0
end;
const
s1 : string = 'Now is the time';
s2 : string = 'for all programmers';
s3 : string = 'to stop reinventing';
s4 : string = 'the linked list!';
var B : CopyBinder;
i : word;
begin
B.Init(CSTRING);
B.pushC(@s1);
B.insqC(@s2);
B.atInsC(B.getNodes,@s3);
B.insqC(@s4);
while (B.next) do
writeln(strPtr(B.current)^);
writeln;
for i := 0 to (B.getNodes - 1) do
writeln(strPtr(B.atGet(i))^);
writeln;
i := 0;
B.forEach(display,nil,@i);
writeln;
B.setCompare(strcmp);
B.sort;
i := 0;
B.forEach(display,nil,@i);
B.Done;
readln
end.